using System;

namespace RiceShop.Models
{
    // 表示API响应的通用类，使用泛型支持任意类型的数据
    public class ApiResponse<T>
    {
        public int Code { get; set; }
        public string? Message { get; set; }  // 允许为空
        public T? Data { get; set; }          // 允许为空
        public bool Success { get; set; }
        public int Total { get; set; }

        // 构造函数，用于创建一个ApiResponse实例
        public ApiResponse(int code, string? message, T? data, int total = 0)
        {
            Code = code;
            Message = message ?? string.Empty;  // 如果为空则使用空字符串
            Data = data;                       // T? 允许为空
            Success = code == 200;
            Total = total;
        }

        // 静态方法，返回一个表示成功的ApiResponse实例
        public static ApiResponse<T> Ok(T? data, string? message = "操作成功", int total = 0)
        {
            return new ApiResponse<T>(200, message, data, total);
        }

        // 静态方法，返回一个表示错误的ApiResponse实例
        public static ApiResponse<T> Error(string message, int code = 400)
        {
            return new ApiResponse<T>(code, message, default, 0);
        }
    }
}

